home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / IDLIncludes / WorldScript.idl < prev   
Text File  |  1996-05-01  |  5KB  |  150 lines

  1. /*
  2.      File:        WorldScript.idl
  3.  
  4.      Contains:    WorldScript I Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __WORLDSCRIPT_IDL__
  19. #define __WORLDSCRIPT_IDL__
  20.  
  21. #include <somobj.idl>
  22. #include <somcls.idl>
  23.  
  24. #ifndef __TYPES_IDL__
  25. #include <Types.idl>
  26. #endif
  27. #ifndef __TRAPS_IDL__
  28. #include <Traps.idl>
  29. #endif
  30. #ifndef __QUICKDRAWTEXT_IDL__
  31. #include <QuickdrawText.idl>
  32. #endif
  33.  
  34. #ifdef __SOMIDL__
  35.  
  36. typedef UInt16                    WSIOffset;
  37.  
  38. typedef UInt8                    WSIByteCount;
  39.  
  40. typedef UInt8                    WSIByteIndex;
  41.  
  42. /* offset from start of sub-table to row in state table */
  43. typedef UInt16                    WSIStateOffset;
  44.  
  45. typedef UInt32                    WSITableOffset;
  46.  
  47. typedef UInt16                    WSISubtableOffset;
  48.  
  49. typedef UInt16                    WSIGlyphcode;
  50.  
  51. typedef UInt32                    WSITableIdentifiers;
  52.  
  53. /****             L O O K U P    T A B L E    T Y P E S        ****/
  54. typedef unsigned short            WSILookupTableFormat;
  55.  
  56. typedef unsigned short            WSILookupValue;
  57.  
  58. /* An offset from the beginning of the lookup table */
  59. typedef unsigned short            WSILookupOffset;
  60.  
  61. /*    FORMAT SPECIFIC DEFINITIONS */
  62. /*
  63.         lookupSimpleArray:
  64.         
  65.         This is a simple array which maps all glyphs in the font
  66.         to lookup values.
  67. */
  68. typedef SOMTwoByteStruct        WSILookupArrayHeader;        /* Derived from a struct of 2 bytes in size */
  69.  
  70. /*
  71.         lookupTrimmedArray:
  72.         
  73.         This is a single trimmed array which maps a single range
  74.         of glyhs in the font to lookup values.
  75. */
  76. typedef SOMLargeStruct            WSILookupTrimmedArrayHeader; /* Derived from a struct of 6 bytes in size */
  77.  
  78. /* The format specific part of the subtable header */
  79. typedef SOMLargeStruct            WSILookupFormatSpecificHeader; /* Derived from a struct of 8 bytes in size */
  80.  
  81. /* The overall subtable header */
  82. typedef SOMLargeStruct            WSILookupTableHeader;        /* Derived from a struct of 8 bytes in size */
  83.  
  84. /****        G L Y P H    E X P A N S I O N    ****/
  85. typedef unsigned short            GlyphExpansionFormats;
  86.  
  87. typedef SOMFourByteStruct        ExpandedGlyphCluster;        /* Derived from a struct of 4 bytes in size */
  88.  
  89. typedef SOMFourByteStruct        ExpandedGlyphOffset;        /* Derived from a struct of 4 bytes in size */
  90.  
  91. typedef SOMLargeStruct            GlyphExpansionStateTable;    /* Derived from a struct of 6 bytes in size */
  92.  
  93. typedef SOMLargeStruct            GlyphExpansionTable;        /* Derived from a struct of 24 bytes in size */
  94.  
  95. /* Glyph-to-Character constants and types  */
  96. typedef unsigned short            GlyphToCharLookupFormats;
  97.  
  98. typedef UInt8                    GlyphToCharFontIndex;
  99.  
  100. typedef UInt8                    QDGlyphcode;
  101.  
  102. typedef SOMLargeStruct            GlyphToCharActionTable;        /* Derived from a struct of 10 bytes in size */
  103.  
  104. typedef SOMFourByteStruct        GlyphToCharActionHeader;    /* Derived from a struct of 4 bytes in size */
  105.  
  106. typedef SOMLargeStruct            GlyphToCharHeader;            /* Derived from a struct of 16 bytes in size */
  107.  
  108. /*
  109.  JUSTIFICATION TYPES
  110.     WorldScript supports justification of text using insertion. The justification
  111.     table specifies a insertion string to insert between 2 specified glyphs.
  112.     Each combination of inter-glyph boundary can be assigned a justification priority,
  113.     the higher the priority the more justification strings inserted at that position.
  114.     
  115.     The priorities for each inter-glyph boundary are specified by the justification table's
  116.     state table.
  117.     
  118.     Special handling is done for scripts which use spaces to justify, because the width of 
  119.     a space varies depending on the setting of SpaceExtra. This is why the number of spaces
  120.     per inserting string is specified in the justification table.
  121.  
  122. */
  123. typedef UInt8                    WSIJustificationPriority;
  124.  
  125. typedef SOMFourByteStruct        WSIJustificationStateEntry;    /* Derived from a struct of 4 bytes in size */
  126.  
  127. typedef unsigned short            WSIJustificationClasses;
  128.  
  129. typedef unsigned short            WSIJustificationStates;
  130.  
  131. /* pre-multiplied: class# * sizeof(WSIJustificationStateEntry) */
  132. typedef UInt8                    WSIJustificationClassOffset;
  133.  
  134. typedef SOMLargeStruct            WSIJustificationStateTable;    /* Derived from a struct of 8 bytes in size */
  135.  
  136. /*
  137.             Last two fields of above structure - someday?
  138.             WSIJustificationClassOffset    classes[up to 64 classes supported];
  139.             WSIJustificationStateEntry    states[up to your heart's desire];
  140. */
  141. typedef SOMLargeStruct            WSIJustificationHeader;        /* Derived from a struct of 20 bytes in size */
  142.  
  143. /* Line Layout's Property table version <11> */
  144. /* pass as priorityWeight to JustifyWSILayout to use script's current just setting */
  145.  
  146. #endif /* __SOMIDL__ */
  147.  
  148. #endif /* __WORLDSCRIPT_IDL__ */
  149.  
  150.